home *** CD-ROM | disk | FTP | other *** search
/ MacPeople 1997 August 15 / MACPEOPLE-1997-08-15.ISO.7z / MACPEOPLE-1997-08-15.ISO / アップル関連 / ARA PS アップデート / モデム用追加分 / ARA 2.0 用 GV 高速 / ARA 2.0 用 GV 高速 next >
Text File  |  1995-06-12  |  7KB  |  361 lines

  1. !  Global Village Teleport Gold & Powerport Gold  6/29/93  KW
  2. !
  3. !  'mlts' resource info for this modem:
  4. !    byte 1 == 01 -> modem HAS builtin reliability protocols
  5. !    byte 2 == 00 -> reserved by Apple
  6. !    byte 3 == 21 -> max hex chars in varstr 7 (33 dec)
  7. !    byte 4 == 21 -> max hex chars in varstr 8
  8. !    byte 5 == 21 -> max hex chars in varstr 9
  9. !    
  10. !    29Aug93    rhoiberg    Changed all commands to capitals.  Stop using the SBreak command
  11. !                        it seems to be wedging the modems.  Change &D0 to &D3.  Clean up the Hangup command 
  12. !                        and make the +++ sequence work when on line.  Turn off answer in hangup by 
  13. !                        setting S0=0 in @HANGUP.
  14. ! 02/14/94 SAP Changes to work with all GV Modems except TP BronzeII 
  15. !              PP Bronze
  16. !
  17. !     2jun94    rhoiberg    Moved the userhook 1 from when a ring happens to when it 
  18. !                                really gets connected.  This fixes the bug where a fax is received
  19. !                                and the serial port is marked as busy and can no longer be used.
  20. !
  21. @ORIGINATE
  22. @ANSWER
  23. !
  24. ! set up the modem - label range is 1-10
  25. !
  26. ! Mac talks to the modem at 19,200 bps.  
  27. serreset 19200, 0, 8, 1
  28. !
  29. ! reset the serial port
  30. HSReset 0 0 0 0 0 0
  31. settries 0
  32. @LABEL 1
  33. matchclr
  34. matchstr 1 3 "OK¥13¥10"
  35. ! &F  - recall factory settings
  36. ! &D3 - Reset Modem on On-to-Off DTR transitions
  37. ! ¥J0 - Disable auto port rate adjust
  38. ! W2  - Connect result code reports modem speed
  39. ! ¥Q2 - Unidirectional flow control
  40. ! S7=60 - To allow for an international call
  41. ! S0=0 - Don't answer calls
  42. ! E0   - Turn command echo off
  43. ! ¥N0 - Enter normal mode (no reliability protocols)
  44. write "AT&F&D3¥¥J0W2¥¥Q2S7=60S0=0E0¥¥N0¥13"
  45. matchread 30
  46. inctries
  47. iftries 2 71
  48. !
  49. ! Reset the Modem
  50. !
  51. DTRSet
  52. pause 5
  53. DTRClear
  54. pause 5
  55. DTRSet
  56. flush
  57. jump 1
  58. !
  59. @LABEL 3
  60. ! Modem responding & configured.
  61. ! determine if reliable link is requested.
  62. !
  63. ! if modem mnp10 link requested (var 4 == 2) then jump label 4
  64. ifstr 4 4 "2"
  65. !
  66. ! if no modem v42 link requested (var 4 == 0) [same as ARA 1.0] then jump label 9
  67. ifstr 4 9 "0"
  68. !
  69. ! else invalid value in var 4; exit w/error
  70. jump 76
  71. !
  72. @LABEL 4
  73. ! use this label for mnp 10 type stuff...
  74. ! THIS modem doesn't support mnp 10 links.
  75. jump 9
  76. !
  77. @LABEL 9
  78. ! If speaker on flag is true, jump to label 13.  Else turn off the speaker.
  79. ifstr 2 13 "1"
  80. pause 5
  81. matchclr
  82. matchstr 1 13 "OK¥13¥10"
  83. write "ATM0¥13"
  84. matchread 30
  85. jump 71
  86. !
  87. ! modem ready, so enable answering or originate a call - label range is 11-30
  88. !
  89. @LABEL 13
  90. pause 5
  91. ifANSWER 62
  92. !
  93. ! if normal dialing (parm 6 == 0) jump to 19
  94. ifstr 6 19 "0"
  95. !
  96. ! if blind dialing (parm 6 == 1) jump to 17
  97. ifstr 6 17 "1"
  98. !
  99. ! if manual dialing (parm 6 == 2) jump to 15 
  100. ifstr 6 15 "2"
  101. !
  102. ! else invalid value in var 6; exit w/error
  103. jump 76
  104. !
  105. @label 15
  106. note "Manual dialing initiated" 3
  107. ! X1 to ignore dialtone & busy for manual dialing, D to dial
  108. write "ATX1D ¥13"
  109. jump 32
  110. !
  111. @label 17
  112. note "Dialing without tone" 3
  113. matchclr
  114. matchstr 1 19 "OK¥13¥10"
  115. ! X1 to ignore dialtone & busy for blind dialing
  116. write "ATX1¥13"
  117. matchread 30
  118. jump 71
  119. !
  120. @label 19
  121. ! this is where we break up long dialstrings
  122. !
  123. ! parm 1 is always the full dialstring from the conn doc
  124. note "Dialing ^1" 3
  125. ! parm 3 is always "p" for pulse & "t" for tone
  126. !
  127. ! if parm 8 == blank (complete dialstring in parm 7)
  128. !  then jump to label 27 & dial parm 7
  129. ifstr 8 27 " "
  130. !
  131. ! if parm 9 == blank (complete dialstring in parms 7 & 8)
  132. !  then jump to label 24 & dial parm 7 & 8
  133. ifstr 9 24 " "
  134. !
  135. !  else dial parm 7 & 8 & 9 (complete dialstring in parms 7, 8 & 9)
  136. matchclr
  137. matchstr 1 21 "OK¥13¥10"
  138. ! parm 7 holds first string fragment
  139. write "ATD^3^7;¥13"
  140. matchread 400
  141. ! modem not responding; bailout.
  142. jump 71
  143. @label 21
  144. ! parm 8 holds second string fragment
  145. matchclr
  146. matchstr 1 22 "OK¥13¥10"
  147. write "ATD^3^8;¥13"
  148. matchread 400
  149. ! modem not responding; bailout.
  150. jump 71
  151. @label 22
  152. ! parm 9 holds last string fragment
  153. write "ATD^3^9¥13"
  154. jump 32
  155. !
  156. @label 24
  157. matchclr
  158. matchstr 1 25 "OK¥13¥10"
  159. ! parm 7 holds first string fragment
  160. write "ATD^3^7;¥13"
  161. matchread 400
  162. ! modem not responding; bailout.
  163. jump 71
  164. @label 25
  165. ! parm 8 holds last string fragment
  166. write "ATD^3^8¥13"
  167. jump 32
  168. !
  169. @label 27
  170. ! parm 7 holds entire string
  171. write "ATD^3^7¥13"
  172. jump 32
  173. !
  174. !    connecting - label range is 31-60
  175. !
  176. @LABEL 32
  177. matchclr
  178. matchstr 1  34 "CONNECT 1200¥13¥10"
  179. matchstr 2  35 "CONNECT 2400¥13¥10"
  180. matchstr 3  36 "CONNECT 4800¥13¥10"
  181. matchstr 4  37 "CONNECT 7200¥13¥10"
  182. matchstr 5  38 "CONNECT 9600¥13¥10"
  183. matchstr 6  39 "CONNECT 12000¥13¥10"
  184. matchstr 7  40 "CONNECT 14400¥13¥10"
  185. matchstr 8  41 "CONNECT 16800¥13¥10"
  186. matchstr 9  42 "CONNECT 19200¥13¥10"
  187. ! other connect speeds go below here
  188. matchstr 11 72 "NO DIALTONE¥13¥10"
  189. matchstr 12 73 "NO CARRIER¥13¥10"
  190. matchstr 13 73 "ERROR¥13¥10"
  191. matchstr 14 74 "BUSY¥13¥10"
  192. matchstr 15 75 "NO ANSWER¥13¥10"
  193. matchread 700
  194. ifANSWER 32
  195. jump 71
  196. !
  197. !  THIS v32b modem has been setup to do duplex cts/rts handshaking,
  198. !  and we assume that a cts/rts handshaking cable is being used,
  199. !  so we leave the serial port set to 19,200 bps.
  200. !  
  201. !  in a v32 or v22b modem, we assume the lower data rate won't require
  202. !  cts/rts handshaking.  
  203. !
  204. @LABEL 34
  205. note "Communicating at 1200 bps." 2
  206. CommunicatingAt 1200
  207. jump 58
  208. !
  209. @LABEL 35
  210. note "Communicating at 2400 bps." 2
  211. CommunicatingAt 2400
  212. jump 58
  213. !
  214. @LABEL 36
  215. note "Communicating at 4800 bps." 2
  216. CommunicatingAt 4800
  217. jump 58
  218. !
  219. @LABEL 37
  220. note "Communicating at 7200 bps." 2
  221. CommunicatingAt 7200
  222. jump 58
  223. !
  224. @LABEL 38
  225. note "Communicating at 9600 bps." 2
  226. CommunicatingAt 9600
  227. jump 58
  228. !
  229. @LABEL 39
  230. note "Communicating at 12000 bps." 2
  231. CommunicatingAt 12000
  232. jump 58
  233. !
  234. @LABEL 40
  235. note "Communicating at 14400 bps." 2
  236. CommunicatingAt 14400
  237. jump 58
  238. !
  239. @LABEL 41
  240. note "Communicating at 16800 bps." 2
  241. CommunicatingAt 16800
  242. jump 58
  243. !
  244. @LABEL 42
  245. note "Communicating at 19200 bps." 2
  246. CommunicatingAt 19200
  247. jump 58
  248. !
  249. !
  250. @LABEL 58
  251. ! turn on cts handshaking.
  252. HSReset 0 1 0 0 0 0
  253. !
  254. ifANSWER 59
  255. pause 30
  256. exit 0
  257. @LABEL 59
  258. ! claim the serial port
  259. userhook 1
  260. exit 0
  261. !
  262. ! @ANSWER
  263. ! Set the modem to answer on 1st ring - label range is 61-70
  264. !
  265. @LABEL 62
  266. matchclr
  267. matchstr 1 32 "OK¥13¥10"
  268. write "ATS0=1¥13"
  269. matchread 30
  270. jump 71
  271. !
  272. ! error messages - label range is 71-100
  273. !
  274. ! Modem Not Responding
  275. @LABEL 71
  276. exit -6019
  277. !
  278. ! No Dial Tone
  279. @LABEL 72
  280. exit -6020
  281. !
  282. ! No Carrier or Error
  283. @LABEL 73
  284. exit -6021
  285. !
  286. ! Busy
  287. @LABEL 74
  288. exit -6022
  289. !
  290. ! No Answer
  291. @LABEL 75
  292. exit -6023
  293. !
  294. ! varstring invalid value
  295. @LABEL 76
  296. exit -6027
  297. !
  298. ! Hang up the modem - label range is 101-120
  299. !
  300. @HANGUP
  301. @LABEL 102
  302. settries 0
  303. serreset 19200, 0, 8, 1
  304. HSReset 0 0 0 0 0 0
  305. @LABEL 105
  306. !
  307. ! Try to get control of the modem.
  308. !
  309. DTRSet
  310. pause 5
  311. DTRClear
  312. flush
  313. !
  314. @LABEL 108
  315. flush
  316. DTRClear
  317. pause 5
  318. DTRSet
  319. matchclr
  320. matchstr 1 111 "NO CARRIER¥13¥10"
  321. matchstr 2 111 "OK¥13¥10"
  322. matchstr 3 111 "ERROR¥13¥10"
  323. write "ATH¥13"
  324. matchread 30
  325. inctries
  326. iftries 3 71
  327. DTRSet
  328. pause 5
  329. DTRClear
  330. pause 5
  331. DTRSet
  332. flush
  333. !
  334. @LABEL 109
  335. matchclr
  336. matchstr 1 115 "OK¥13¥10"
  337. write "+++"
  338. matchread 15
  339. jump 108
  340. !
  341. ! recall the factory settings.
  342. !
  343. @LABEL 111
  344. pause 15
  345. matchclr
  346. matchstr 1 114 "OK¥13¥10"
  347. write "AT&F1S0=0¥13"
  348. matchread 30
  349. jump 71
  350. !
  351. @LABEL 114
  352. exit 0
  353.  
  354. @LABEL 115
  355. pause 50
  356. jump 108
  357.  
  358. !
  359. ! labels 121-128 are reserved for future emergency hacks
  360. !
  361.